package main

import "fmt"

type op_func func(int, int) int

func add(a, b int) int {
	fmt.Println(a)
	sum := a + b
	return sum
}

func sub(a,b int)int  {
	return a-b
}

func operate(op op_func,a,b int) int {
	return op(a,b)
}

func main() {
	var a,b int
	add(a,b)

	var c op_func
	c = add
	fmt.Println(add)
	fmt.Println(c)

	sum := operate(c,100,200)
	fmt.Println(a)
	fmt.Println(sum)

	c = sub
	sub := operate(c,100,200)
	fmt.Println(sub)
}
